Order with PayPal

Order with PayPal

Firstly make sure you've configured your app for PayPal payments.

Your configuration should look like below from v2/settings/payment endpoint:

"supportedPaymentTypes": [
      {
        "configuration": {
          "accessToken": "access_token$sandbox$tfpvpz222dvp23mg$8f88c8a7927315e96e5d6bd97c4496ea"
        },
        "paymentType": "PayPal",
        "description": "Some paypal descriptions here"
      }
    ],

Making an order

You should create a new order as same as other payment methods. Just send PaymentType as PayPal at /v2/orders/user/ endpoint.

When you send as PayPal, Token Parameter will be returned in payment object like below:

{
  "success": true,
  "data": {
    "order": {
      "id": "5ef9aa120460850c08148370",
      "..." : "all the other stuffs..."
    },
    "payment": {
      "isSuccess": true,
      "state": "None",
      "stateCode": 0,
      "token": "eyJ2ZXJzaW9uIjoyLCJlbnZpcm9ubWVudCI6InNhbmRib3giLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpGVXpJMU5pSXNJbXRwWkNJNklqSXdNVGd3TkRJMk1UWXRjMkZ1WkdKdmVDSXNJbWx6Y3lJNklrRjFkR2g1SW4wLmV5SmxlSEFpT2pFMU9UTTFNRFkzTURjc0ltcDBhU0k2SW1WbVlUY3dOVFZtTFRWbVltUXROR0l3TXkxaU5UY3hMVFkwTkRoaU5qVmhNV1kwT0NJc0luTjFZaUk2SW5SbWNIWndlakl5TW1SMmNESXpiV2NpTENKcGMzTWlPaUpCZFhSb2VTSXNJbTFsY21Ob1lXNTBJanA3SW5CMVlteHBZMTlwWkNJNkluUm1jSFp3ZWpJeU1tUjJjREl6YldjaUxDSjJaWEpwWm5sZlkyRnlaRjlpZVY5a1pXWmhkV3gwSWpwbVlXeHpaWDBzSW5KcFoyaDBjeUk2V3lKdFlXNWhaMlZmZG1GMWJIUWlYU3dpYjNCMGFXOXVjeUk2ZTMxOS5WUm5FcGF1VGU3aHZkVzhvZC1VS0pQTGw3dFFudjZvN3V6LWdRRFNzV2t6ZmRwUWRLNTktWldBcldCd3AxRWpKclRobGNiOVFKc25Pc2h2MDNweGRudyIsImNvbmZpZ1VybCI6Imh0dHBzOi8vYXBpLnNhbmRib3guYnJhaW50cmVlZ2F0ZXdheS5jb206NDQzL21lcmNoYW50cy90ZnB2cHoyMjJkdnAyM21nL2NsaWVudF9hcGkvdjEvY29uZmlndXJhdGlvbiIsImdyYXBoUUwiOnsidXJsIjoiaHR0cHM6Ly9wYXltZW50cy5zYW5kYm94LmJyYWludHJlZS1hcGkuY29tL2dyYXBocWwiLCJkYXRlIjoiMjAxOC0wNS0wOCJ9LCJjaGFsbGVuZ2VzIjpbXSwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzL3RmcHZwejIyMmR2cDIzbWcvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vb3JpZ2luLWFuYWx5dGljcy1zYW5kLnNhbmRib3guYnJhaW50cmVlLWFwaS5jb20vdGZwdnB6MjIyZHZwMjNtZyJ9LCJ0aHJlZURTZWN1cmVFbmFibGVkIjpmYWxzZSwicGF5cGFsRW5hYmxlZCI6dHJ1ZSwicGF5cGFsIjp7ImRpc3BsYXlOYW1lIjoiSm9obiBEb2UncyBUZXN0IFN0b3JlIiwiY2xpZW50SWQiOiJBVEx6WGw0UHdKX3R5cEZEb2NnS0t4SDBhZ0QtYnNUVTVWVGpVcDM5SHk5cU9Gb1BkdTFkNkZIR1czazV2bDBkeDFPRzhnemgyUWR3UEs5MyIsInByaXZhY3lVcmwiOiJodHRwczovL2V4YW1wbGUuY29tIiwidXNlckFncmVlbWVudFVybCI6Imh0dHBzOi8vZXhhbXBsZS5jb20iLCJiYXNlVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhc3NldHNVcmwiOiJodHRwczovL2NoZWNrb3V0LnBheXBhbC5jb20iLCJkaXJlY3RCYXNlVXJsIjpudWxsLCJhbGxvd0h0dHAiOnRydWUsImVudmlyb25tZW50Tm9OZXR3b3JrIjpmYWxzZSwiZW52aXJvbm1lbnQiOiJvZmZsaW5lIiwidW52ZXR0ZWRNZXJjaGFudCI6ZmFsc2UsImJyYWludHJlZUNsaWVudElkIjoibWFzdGVyY2xpZW50MyIsImJpbGxpbmdBZ3JlZW1lbnRzRW5hYmxlZCI6dHJ1ZSwibWVyY2hhbnRBY2NvdW50SWQiOiJVU0QiLCJjdXJyZW5jeUlzb0NvZGUiOiJVU0QifSwibWVyY2hhbnRJZCI6InRmcHZwejIyMmR2cDIzbWciLCJ2ZW5tbyI6Im9mZiJ9"
    }
  }
}
  • Get this token (data > payment > token) and use it for client-side paypal payment

  • After completed a successful payment. Send request to /v2/orders/complete endpoint with Nonce parameter.

  • Nonce is included at root object like below:

{
  "orderId": "5ef9aa120460850c08148370",
  "nonce": "YOUR_NONCE_HERE",
  "paymentType": "PayPal"
}

Stock will be restored but your products still remain in your shopping cart after this operation. You must create a new order after this operation executed once.